var zhigong = {
    // ajaxURL拼接
    URL: {
        // module : 模块名
        urlNoParam: function (module) {
            return module + "s";
        },
        // module : 模块名; param : 参数,可多值,单值为普通参数,多值为数组
        urlWithParam: function (module, param) {
            var paramStr = "",
                paramL = param.length;
            if (zhigong.isArray(param)) {
                for (var i = 0; i < paramL; i++) {
                    paramStr = paramStr + "/" + param[i];
                }
            } else {
                paramStr = "/" + param;
            }

            return module + "s" + paramStr;
        }
    },
    // 打开模态框方法
    // module: 模块名;
    // status: 状态值,new新增,view查看,update修改;
    // prikey: 主键,可为数组
    openModal : function (module, status, prikey){
        if(status == 'new'){
            $('#dataModal').modal('show');
        }else{
            $.ajax({
                url : zhigong.URL.urlWithParam(module,prikey),
                type : "GET",
                dataType:"json",
                contentType : "application/json;charset=UTF-8",
                success:function(result) {
                    <!-- 处理后端返回的数据 -->
                    var message= JSON.stringify(result);
                    console.log("success:"+message);
                    var data = result.data;
                    for(var d in data){
                        $("#"+d).val(data[d]);
                    }
                    if(status == 'view'){
                        $('#dataModal').find('.form-control').attr("disabled","disabled");
                        $('#saveBtn').hide();
                    }else{
                        $('#dataModal').find('.prikey').attr("disabled","disabled");
                    }
                    $('#dataModal').modal('show');
                },
                error:function(result){
                    var message= JSON.stringify(result);
                    console.log("error:"+message);
                }
            });
        }
    },
    // 保存按钮触发方法.包括新增和修改操作.
    saveData : function(module){
        // 获取上报数据,json字符串格式.
        var inputNodes = $('#dataModal').find('.form-control'),
            inputNodesL = inputNodes.length,
            data = "{";
        for(var i = 0; i < inputNodesL; i++){
            data = data + '"' + inputNodes[i].id + '":"' + $("#"+inputNodes[i].id).val() + '",';
        }
        data = data.slice(0,-1);
        data = data + "}";

        // 默认执行新增的保存
        var status = "POST";
        var ajaxUrl = zhigong.URL.urlNoParam(module);
        // 取主键input,看是否有值,如果有值认为是更新的保存
        var prikey = $(".prikey");
        var prikeyL= prikey.length;
        // 类中有主键类并且主键类的元素中的第一个的值不为空,代表是更新操作
        if(prikeyL > 0 && prikey.eq(0).val() != "") {
            var paramArr = [];
            for(var i = 0; i < prikeyL; i++) {
                paramArr[i] = prikey.eq(i).val();
            }
            status = "PUT";
            ajaxUrl = zhigong.URL.urlWithParam(module, paramArr);
        }
        $.ajax({
            url : ajaxUrl,
            type : status,
            dataType:"json",
            contentType : "application/json;charset=UTF-8",
            data : data,
            success:function(result) {
                var message= JSON.stringify(result);
                console.log("success:"+message);

                // 显示保存成功
                $("#alertMsg").html(result.data == 1 ? "保存成功" : "保存失败").addClass('alert-success').addClass('in');

                // 关闭模态框
                $('#dataModal').modal('hide');

                // 一秒后刷新页面
                setTimeout(function(){
                    $("#alertMsg").removeClass('in');
                    window.location.reload();
                },1000);
            },
            error:function(result){
                var message= JSON.stringify(result);
                console.log("error:"+message);
                $("#alertMsg").html(result.error).addClass('alert-danger').addClass('in');
            }
        });
    },
    // 删除按钮触发方法
    deleteData : function (module, prikey){
        Common.confirm({
            title: "删除确认",
            message: "您确定要删除这条数据吗?",
            operate: function (reselt) {
                if (reselt) {
                    $.ajax({
                        url: zhigong.URL.urlWithParam(module,prikey),
                        type: "DELETE",
                        dataType: "json",
                        contentType: "application/json;charset=UTF-8",
                        success: function (result) {

                            var message = JSON.stringify(result);
                            console.log("success:" + message);

                            $("#alertMsg").html(result.data == 1 ? "删除成功" : "删除失败").addClass('alert-success').addClass('in');
                            setTimeout(function () {
                                $("#alertMsg").removeClass('in');
                                window.location.reload();
                            }, 1000);

                        },
                        error: function (result) {
                            var message = JSON.stringify(result);
                            console.log("error:" + message);
                            $("#alertMsg").html(result.data).addClass('alert-danger').addClass('in');
                        }
                    })
                } else {
                    return false;
                }
            }
        })
    },
    // 查询按钮触发方法
    searchData : function(module){
        $("#commitInput").val($("#searchInput").val());
        zhigong.pageData(module, 1, true);

    },
    // 分页查询方法
    pageData : function(module, currentPage, initFlag){
        var data = {
            condition : $("#commitInput").val(),
            currentPage : currentPage,
            pageNumber : $("#pageNumber").val()
        };
        if(module == 'chuqin'){
            data.ksrq = $("#ksrq").val();
            data.jsrq = $("#jsrq").val();
        }
        $.ajax({
            url: zhigong.URL.urlNoParam(module),
            type: "GET",
            dataType: "json",
            data: data,
            contentType: "application/json;charset=UTF-8",
            success: function (result) {

                // var message = JSON.stringify(result);
                // console.log("分页查询返回值:" + message);

                var resData = result.data;
                updateList(resData);
                var resPage = resData[0].page;
                $("#totalPage").val(resPage.totalPage);
                $("#currentPage").val(resPage.currentPage);
                if(initFlag) initPage($("#totalPage").val());
            },
            error: function (result) {
                var message = JSON.stringify(result);
                console.log("error:" + message);
                $("#alertMsg").html(result.data).addClass('alert-danger').addClass('in');
            }
        })
    },
    // 判断是否为undefined,如果不是返回空字符串.
    undefinedHandler : function (param){
        return param == undefined ? "" : param;
    },
    // 判断是否为数组
    isArray : function(o){
        return Object.prototype.toString.call(o) == '[object Array]'
    }

}

$(function(){
    // 为模态窗绑定隐藏事件,隐藏时将input设为可用,将保存按钮显示.
    $('#dataModal').on('hidden.bs.modal',function () {
        $('#dataModal').find('input').val("").removeAttr("disabled");
        $('#dataModal').find('select').removeAttr("disabled");
        $('#saveBtn').show();
    });

    var windowH = $(window).height();
    $('#dataTable').height(windowH - 230);
    $("#pageNumber").val(Math.floor((windowH - 230) / 41));

})